this._metaWorkspace = metaWorkspace;
this._monitorIndex = monitorIndex;
- this._workarea = metaWorkspace
- ? metaWorkspace.get_work_area_for_monitor(this._monitorIndex)
- : Main.layoutManager.getWorkAreaForMonitor(this._monitorIndex);
this._overviewAdjustment = overviewAdjustment;
this._container = null;
this.syncOverlays();
this.layout_changed();
});
+
+ this._workarea = null;
+ this._workareasChangedId = 0;
}
_isBetterScaleAndSpace(oldScale, oldSpace, scale, space) {
return workarea;
}
+ _syncWorkareaTracking() {
+ if (this._container) {
+ if (this._workAreaChangedId)
+ return;
+ this._workarea = Main.layoutManager.getWorkAreaForMonitor(this._monitorIndex);
+ this._workareasChangedId =
+ global.display.connect('workareas-changed', () => {
+ this._workarea = Main.layoutManager.getWorkAreaForMonitor(this._monitorIndex);
+ this.layout_changed();
+ });
+ } else if (this._workareasChangedId) {
+ global.display.disconnect(this._workareasChangedId);
+ this._workareasChangedId = 0;
+ }
+ }
+
vfunc_set_container(container) {
this._container = container;
+ this._syncWorkareaTracking();
this._stateAdjustment.actor = container;
}